package top.lixunda.ecommerce.server.user.api.controller;

import io.swagger.annotations.Api;
import io.swagger.annotations.ApiOperation;
import org.springframework.web.bind.annotation.PostMapping;
import org.springframework.web.bind.annotation.RequestBody;
import org.springframework.web.bind.annotation.RequestMapping;
import top.lixunda.commerce.common.core.entity.MessageObject;
import top.lixunda.ecommerce.server.user.api.entity.dto.SystemMenuAllotDTO;

import java.util.List;

/**
 * 菜单权限分配管理接口
 *
 * @author lixunda
 * @version time:2020/4/24 13:55
 */
@Api("菜单权限分配管理接口")
@RequestMapping("/system_menu_allot")
public interface ISystemMenuAllotController {

    // 菜单分配由后台超级管理员和店铺超级管理员进行，其他任何用户都没有操作权限
    // 后台超级管理员管理后台用户的权限的分配，店铺超级管理员管理店铺用户的权限

    /**
     * 分配菜单
     *
     * @param list 菜单操作DTO
     * @return 是否保存成功
     */
    @ApiOperation("分配菜单")
    @PostMapping("allotMenu")
    MessageObject<Boolean> allotMenu(@RequestBody List<SystemMenuAllotDTO> list);

    /**
     * 移除菜单
     *
     * @param list 菜单操作DTO
     * @return 是否移除成功
     */
    @ApiOperation("移除菜单")
    @PostMapping("removeMenuAllot")
    MessageObject<Boolean> removeMenuAllot(@RequestBody List<SystemMenuAllotDTO> list);

    /**
     * 根据分配编号移除菜单分配
     *
     * @param list 分配编号列表
     * @return 是否移除成功
     */
    @ApiOperation("根据分配编号移除菜单分配")
    @PostMapping("removeMenuAllotByIds")
    MessageObject<Boolean> removeMenuAllotByIds(@RequestBody List<Integer> list);

}
